package com.running.mobile;

import java.util.HashMap;
import java.util.Map;

import org.apache.commons.lang.StringUtils;

import com.isomorphic.datasource.DSRequest;
import com.isomorphic.datasource.DSResponse;
import com.isomorphic.datasource.DataSource;
import com.isomorphic.datasource.DataSourceManager;

/**
 * *导入客户的时候将部门名换成部门PK,设置imsi值
 * @author Administrator
 *
 */
public class UserDMI {
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public DSResponse add(DSRequest request ,Map record)throws Exception
	{
		//导入时利用dep_pk保存的部门名称，需要把他替换成真正的pk
		String depName = (String) record.get("dep_pk");
		
		
		if(!StringUtils.isBlank(depName)){
			//验证该部门是否存在
			DataSource depDS = DataSourceManager.getDataSource("depDS");
			Map map = new HashMap();
			map.put("corp_sid", record.get("corp_sid"));
			map.put("name",depName);
			Map dep = depDS.fetchSingle(map);
			
			if(dep != null){
				//如果存在，修改为真正的PK
				record.put("dep_pk", dep.get("pk"));
			}else{
			   //如果不存在，增加为根公司的部门
				throw new Exception("手机为"+record.get("telephone")+"记录的部门不存在，记录被忽略");
				//如果不存在，增加为根公司的部门
//				map.put("parentID",record.get("corp_sid"));
//				map.put("smLimit",-1);
//				map.put("mmLimit",-1);
//				depDS.add(map);
//				dep = depDS.fetchSingle(map);
//				record.put("dep_pk", dep.get("pk"));
			}
		}
		
		//增加imsi
		DataSource imsiDS = DataSourceManager.getDataSource("imsiDS");
		Map imsi = imsiDS.fetchById(record.get("telephone"));
		if(imsi != null){
			record.put("imsi", imsi.get("imsi"));
		}
		
		
		request.setValues(record);
		return request.execute();
		 
	}


}
